#!/usr/bin/env python3
"""
管理员权限运行脚本
"""

import sys
import os
import subprocess

def is_admin():
    """检查是否以管理员权限运行"""
    try:
        import ctypes
        return ctypes.windll.shell32.IsUserAnAdmin()
    except:
        return False

def run_as_admin():
    """以管理员权限重新运行程序"""
    if is_admin():
        print("✅ 程序已以管理员权限运行")
        return True
    else:
        print("⚠️ 程序未以管理员权限运行")
        print("🔄 尝试以管理员权限重新启动...")
        
        try:
            # 获取当前脚本路径
            script_path = os.path.abspath(sys.argv[0])
            
            # 以管理员权限重新运行
            import ctypes
            ctypes.windll.shell32.ShellExecuteW(
                None, 
                "runas", 
                sys.executable, 
                f'"{script_path}"', 
                None, 
                1
            )
            return False
        except Exception as e:
            print(f"❌ 无法以管理员权限启动: {e}")
            print("请手动右键程序选择'以管理员身份运行'")
            return False

def main():
    print("🔐 管理员权限检查工具")
    print("=" * 40)
    
    if not run_as_admin():
        print("程序将退出，请在管理员权限下重新运行")
        input("按回车键退出...")
        sys.exit(1)
    
    print("✅ 管理员权限验证成功")
    print("现在可以启动主程序进行全屏应用测试")
    print()
    
    # 启动主程序
    try:
        print("🚀 启动主程序...")
        from page.home import MainWindow
        from PySide6.QtWidgets import QApplication
        
        app = QApplication(sys.argv)
        window = MainWindow()
        window.show()
        
        print("✅ 主程序启动成功")
        print("现在可以在全屏应用中测试热键功能")
        
        sys.exit(app.exec())
        
    except Exception as e:
        print(f"❌ 启动主程序失败: {e}")
        input("按回车键退出...")
        sys.exit(1)

if __name__ == "__main__":
    main()
